home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Games / NetHack 3.1.3 / source / include / extern.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-08-01  |  54.4 KB  |  1,869 lines  |  [TEXT/R*ch]

  1. /*    SCCS Id: @(#)extern.h    3.1    93/06/27    */
  2. /* Copyright (c) Steve Creps, 1988.                  */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #ifndef EXTERN_H
  6. #define EXTERN_H
  7.  
  8. #define E extern
  9.  
  10. /* ### alloc.c ### */
  11.  
  12. E long *FDECL(alloc, (unsigned int));
  13.  
  14. #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
  15.  
  16. /* ### allmain.c ### */
  17.  
  18. E void NDECL(moveloop);
  19. E void NDECL(stop_occupation);
  20. E void NDECL(display_gamewindows);
  21. E void NDECL(newgame);
  22.  
  23. /* ### amiwbench.c ### */
  24.  
  25. #ifdef AMIGA
  26. E void NDECL(ami_wbench_init);
  27. E void NDECL(ami_wbench_args);
  28. E int FDECL(ami_wbench_getsave, (int));
  29. E void FDECL(ami_wbench_unlink, (char *));
  30. E int FDECL(ami_wbench_iconsize, (char *));
  31. E void FDECL(ami_wbench_iconwrite, (char *));
  32. E int FDECL(ami_wbench_badopt, (const char *));
  33. E void NDECL(ami_wbench_cleanup);
  34. E void FDECL(getlind, (const char *,char *,const char *));
  35. #endif /* AMIGA */
  36.  
  37. /* ### apply.c ### */
  38.  
  39. #ifdef OVERLAY
  40. E int NDECL(dig);
  41. #endif
  42. E int NDECL(doapply);
  43. E int NDECL(holetime);
  44. E boolean FDECL(dighole, (BOOLEAN_P));
  45. E int NDECL(dorub);
  46. E int NDECL(dojump);
  47. #ifdef WALKIES
  48. E int NDECL(number_leashed);
  49. E void FDECL(o_unleash, (struct obj *));
  50. E void FDECL(m_unleash, (struct monst *));
  51. E void NDECL(unleash_all);
  52. E boolean NDECL(next_to_u);
  53. E struct obj *FDECL(get_mleash, (struct monst *));
  54. E void FDECL(check_leash, (XCHAR_P,XCHAR_P));
  55. #endif
  56. E boolean FDECL(um_dist, (XCHAR_P,XCHAR_P,XCHAR_P));
  57. E boolean FDECL(snuff_candle, (struct obj *));
  58. E boolean FDECL(snuff_lit, (struct obj *));
  59. E void NDECL(check_lamps);
  60. E void FDECL(use_unicorn_horn, (struct obj *));
  61. E boolean FDECL(tinnable, (struct obj *));
  62.  
  63. /* ### artifact.c ### */
  64.  
  65. E void NDECL(init_artifacts);
  66. E void FDECL(save_artifacts, (int));
  67. E void FDECL(restore_artifacts, (int));
  68. E const char *FDECL(artiname, (int));
  69. E struct obj *FDECL(mk_artifact, (struct obj *,ALIGNTYP_P));
  70. E const char *FDECL(artifact_name, (const char *,short *));
  71. E boolean FDECL(exist_artifact, (int,const char *));
  72. E void FDECL(artifact_exists, (struct obj *,const char *,BOOLEAN_P));
  73. E int NDECL(nartifact_exist);
  74. E void FDECL(artifact_unexist, (struct obj *));
  75. E boolean FDECL(spec_ability, (struct obj *,unsigned));
  76. E boolean FDECL(restrict_name, (struct obj *,const char *));
  77. E boolean FDECL(defends, (int,struct obj *));
  78. E void FDECL(set_artifact_intrinsic, (struct obj *,BOOLEAN_P,long));
  79. E int FDECL(touch_artifact, (struct obj *,struct monst *));
  80. E int FDECL(spec_abon, (struct obj *,struct permonst *));
  81. E int FDECL(spec_dbon, (struct obj *,struct permonst *,int));
  82. E boolean FDECL(artifact_hit, (struct monst *,struct monst *,
  83.                 struct obj *,int *,int));
  84. E int NDECL(doinvoke);
  85.  
  86. /* ### attrib.c ### */
  87.  
  88. E boolean FDECL(adjattrib, (int,int,int));
  89. E void FDECL(change_luck, (SCHAR_P));
  90. E int FDECL(stone_luck, (BOOLEAN_P));
  91. E void FDECL(gainstr, (struct obj *,int));
  92. E void FDECL(losestr, (int));
  93. E void NDECL(restore_attrib);
  94. E void FDECL(exercise, (int,BOOLEAN_P));
  95. E void NDECL(exerchk);
  96. E void NDECL(reset_attribute_clock);
  97. E void FDECL(init_attr, (int));
  98. E void NDECL(redist_attr);
  99. E void FDECL(adjabil, (int,int));
  100. E int NDECL(newhp);
  101. E schar FDECL(acurr, (int));
  102. E schar NDECL(acurrstr);
  103. E void FDECL(adjalign, (int));
  104.  
  105. /* ### ball.c ### */
  106.  
  107. E void NDECL(ballfall);
  108. E void NDECL(placebc);
  109. E void NDECL(unplacebc);
  110. E void FDECL(set_bc, (int));
  111. E void FDECL(move_bc, (int,int,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  112. E boolean FDECL(drag_ball, (XCHAR_P,XCHAR_P,
  113.                 int *,xchar *,xchar *,xchar *,xchar *));
  114. E void FDECL(drop_ball, (XCHAR_P,XCHAR_P));
  115. E void NDECL(drag_down);
  116.  
  117. /* ### bones.c ### */
  118.  
  119. E void NDECL(savebones);
  120. E int NDECL(getbones);
  121.  
  122. /* ### botl.c ### */
  123.  
  124. E int FDECL(xlev_to_rank, (int));
  125. E int FDECL(title_to_mon, (const char *,int *,int *));
  126. E void NDECL(max_rank_sz);
  127. #ifdef SCORE_ON_BOTL
  128. E long NDECL(botl_score);
  129. #endif
  130. E const char *FDECL(rank_of, (unsigned,CHAR_P,BOOLEAN_P));
  131. E void NDECL(bot);
  132.  
  133. /* ### cmd.c ### */
  134.  
  135. #ifdef OVERLAY
  136. E int NDECL(doextcmd);
  137. #ifdef POLYSELF
  138. E int NDECL(domonability);
  139. #endif /* POLYSELF */
  140. E int NDECL(doprev_message);
  141. E int NDECL(timed_occupation);
  142. #if defined(WIZARD) || defined(EXPLORE_MODE)
  143. E int NDECL(wiz_attributes);
  144. #endif /* WIZARD */
  145. # ifdef EXPLORE_MODE
  146. E int NDECL(enter_explore_mode);
  147. # endif /* EXPLORE_MODE */
  148. #ifdef WIZARD
  149. E int NDECL(wiz_detect);
  150. E int NDECL(wiz_genesis);
  151. E int NDECL(wiz_identify);
  152. E int NDECL(wiz_level_tele);
  153. E int NDECL(wiz_map);
  154. E int NDECL(wiz_where);
  155. E int NDECL(wiz_wish);
  156. #endif /* WIZARD */
  157. #endif /* OVERLAY */
  158. E void NDECL(reset_occupations);
  159. E void FDECL(set_occupation, (int (*)(void),const char *,int));
  160. #ifdef REDO
  161. E char NDECL(pgetchar);
  162. E void FDECL(pushch, (CHAR_P));
  163. E void FDECL(savech, (CHAR_P));
  164. #endif
  165. E void FDECL(rhack, (char *));
  166. E int NDECL(doextlist);
  167. E void FDECL(enlightenment, (BOOLEAN_P));
  168. E int FDECL(xytod, (SCHAR_P,SCHAR_P));
  169. #ifdef WALKIES
  170. E void FDECL(dtoxy, (coord *,int));
  171. #endif
  172. E int FDECL(movecmd, (CHAR_P));
  173. E int FDECL(getdir, (const char *));
  174. E void NDECL(confdir);
  175. E int FDECL(isok, (int,int));
  176. E int FDECL(click_to_cmd, (int,int,int));
  177. E char NDECL(readchar);
  178.  
  179. /* ### dbridge.c ### */
  180.  
  181. E boolean FDECL(is_pool, (int,int));
  182. E boolean FDECL(is_lava, (int,int));
  183. E boolean FDECL(is_ice, (int,int));
  184. E int FDECL(is_drawbridge_wall, (int,int));
  185. E boolean FDECL(is_db_wall, (int,int));
  186. E boolean FDECL(find_drawbridge, (int *,int*));
  187. E boolean FDECL(create_drawbridge, (int,int,int,BOOLEAN_P));
  188. E void FDECL(open_drawbridge, (int,int));
  189. E void FDECL(close_drawbridge, (int,int));
  190. E void FDECL(destroy_drawbridge, (int,int));
  191.  
  192. /* ### decl.c ### */
  193.  
  194. E void NDECL(decl_init);
  195.  
  196. /* ### detect.c ### */
  197.  
  198. E struct obj *FDECL(o_in, (struct obj*,CHAR_P));
  199. E int FDECL(gold_detect, (struct obj *));
  200. E int FDECL(food_detect, (struct obj *));
  201. E int FDECL(object_detect, (struct obj *,int));
  202. E int FDECL(monster_detect, (struct obj *,int));
  203. E int FDECL(trap_detect, (struct obj *));
  204. E const char *FDECL(level_distance, (d_level *));
  205. E void FDECL(use_crystal_ball, (struct obj *));
  206. E void NDECL(do_mapping);
  207. E void NDECL(do_vicinity_map);
  208. #ifdef OVERLAY
  209. E void FDECL(findone, (int,int,genericptr_t));
  210. E void FDECL(openone, (int,int,genericptr_t));
  211. #endif /* OVERLAY */
  212. E int NDECL(findit);
  213. E int NDECL(openit);
  214. E int FDECL(dosearch0, (int));
  215. E int NDECL(dosearch);
  216.  
  217. /* ### display.c ### */
  218.  
  219. #ifdef INVISIBLE_OBJECTS
  220. E struct obj * FDECL(vobj_at, (XCHAR_P,XCHAR_P));
  221. #endif /* INVISIBLE_OBJECTS */
  222. E void FDECL(map_background, (XCHAR_P,XCHAR_P,int));
  223. E void FDECL(map_trap, (struct trap *,int));
  224. E void FDECL(map_object, (struct obj *,int));
  225. E void FDECL(unmap_object, (int,int));
  226. E void FDECL(map_location, (int,int,int));
  227. E void FDECL(feel_location, (XCHAR_P,XCHAR_P));
  228. E void FDECL(newsym, (XCHAR_P,XCHAR_P));
  229. E void FDECL(shieldeff, (XCHAR_P,XCHAR_P));
  230. E void FDECL(tmp_at, (int,int));
  231. E void FDECL(swallowed, (int));
  232. E void FDECL(under_water, (int));
  233. E void NDECL(see_monsters);
  234. E void NDECL(set_mimic_blocking);
  235. E void NDECL(see_objects);
  236. E void NDECL(curs_on_u);
  237. E int NDECL(doredraw);
  238. E void NDECL(docrt);
  239. E void FDECL(show_glyph, (XCHAR_P,XCHAR_P,int));
  240. E void NDECL(clear_glyph_buffer);
  241. E void FDECL(row_refresh, (int,int,int));
  242. E void NDECL(cls);
  243. E void FDECL(flush_screen, (int));
  244. E int FDECL(back_to_glyph, (XCHAR_P,XCHAR_P));
  245. E int FDECL(zapdir_to_glyph, (int,int,int));
  246. E int FDECL(glyph_at, (XCHAR_P,XCHAR_P));
  247.  
  248. /* ### do.c ### */
  249.  
  250. #ifdef OVERLAY
  251. E int FDECL(drop, (struct obj *));
  252. E int NDECL(wipeoff);
  253. #endif
  254. E int NDECL(dodrop);
  255. E boolean FDECL(boulder_hits_pool, (struct obj *,int,int,BOOLEAN_P));
  256. E boolean FDECL(flooreffects, (struct obj *,int,int,const char *));
  257. E void FDECL(doaltarobj, (struct obj *));
  258. E boolean FDECL(canletgo, (struct obj *,const char *));
  259. E void FDECL(dropx, (struct obj *));
  260. E void FDECL(dropy, (struct obj *));
  261. E int NDECL(doddrop);
  262. E int NDECL(dodown);
  263. E int NDECL(doup);
  264. #ifdef INSURANCE
  265. E void NDECL(save_currentstate);
  266. #endif
  267. E void FDECL(goto_level, (d_level *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
  268. E void NDECL(deferred_goto);
  269. E void FDECL(revive_corpse, (struct obj *,int,BOOLEAN_P));
  270. E void FDECL(remove_cadavers, (struct obj **));
  271. E int NDECL(donull);
  272. E int NDECL(dowipe);
  273. E struct obj *FDECL(splitobj, (struct obj *,long));
  274. E void FDECL(set_wounded_legs, (long,int));
  275. E void NDECL(heal_legs);
  276.  
  277. /* ### do_name.c ### */
  278.  
  279. E void FDECL(getpos, (coord *,BOOLEAN_P,const char *));
  280. E struct monst *FDECL(christen_monst, (struct monst *,const char *));
  281. E int NDECL(do_mname);
  282. E struct obj *FDECL(oname, (struct obj *,const char *,int));
  283. E int NDECL(ddocall);
  284. E void FDECL(docall, (struct obj *));
  285. E char *FDECL(x_monnam, (struct monst *,int,const char *,int));
  286. E char *FDECL(l_monnam, (struct monst *));
  287. E char *FDECL(mon_nam, (struct monst *));
  288. E char *FDECL(Monnam, (struct monst *));
  289. E char *FDECL(Adjmonnam, (struct monst *,const char *));
  290. E char *FDECL(Amonnam, (struct monst *));
  291. E char *FDECL(a_monnam, (struct monst *));
  292. E const char *NDECL(rndmonnam);
  293. E const char *NDECL(hcolor);
  294. E char *FDECL(self_pronoun, (const char *,const char *));
  295. #ifdef REINCARNATION
  296. E const char *NDECL(roguename);
  297. #endif
  298.  
  299. /* ### do_wear.c ### */
  300.  
  301. #ifdef OVERLAY
  302. E int NDECL(Armor_on);
  303. E int NDECL(Boots_on);
  304. E int NDECL(Gloves_on);
  305. E int NDECL(Helmet_on);
  306. E int FDECL(select_off, (struct obj *));
  307. E int NDECL(take_off);
  308. #endif
  309. E void FDECL(off_msg, (struct obj *));
  310. E boolean FDECL(is_helmet, (struct obj *));
  311. E boolean FDECL(is_gloves, (struct obj *));
  312. E boolean FDECL(is_boots, (struct obj *));
  313. E boolean FDECL(is_cloak, (struct obj *));
  314. E boolean FDECL(is_shield, (struct obj *));
  315. E void NDECL(set_wear);
  316. E boolean FDECL(donning, (struct obj *));
  317. E void NDECL(cancel_don);
  318. E int NDECL(Armor_off);
  319. E int NDECL(Armor_gone);
  320. E int NDECL(Helmet_off);
  321. E int NDECL(Gloves_off);
  322. E int NDECL(Boots_off);
  323. E int NDECL(Cloak_off);
  324. E int NDECL(Shield_off);
  325. E void NDECL(Amulet_off);
  326. E void FDECL(Ring_on, (struct obj *));
  327. E void FDECL(Ring_off, (struct obj *));
  328. E void FDECL(Ring_gone, (struct obj *));
  329. E void FDECL(Blindf_on, (struct obj *));
  330. E void FDECL(Blindf_off, (struct obj *));
  331. E int NDECL(dotakeoff);
  332. E int NDECL(doremring);
  333. E int FDECL(cursed, (struct obj *));
  334. E int FDECL(armoroff, (struct obj *));
  335. E int NDECL(dowear);
  336. E int NDECL(doputon);
  337. E void NDECL(find_ac);
  338. E void NDECL(glibr);
  339. E struct obj *NDECL(some_armor);
  340. E void FDECL(erode_armor, (BOOLEAN_P));
  341. E void NDECL(reset_remarm);
  342. E int NDECL(doddoremarm);
  343. E int FDECL(destroy_arm, (struct obj *));
  344. E void FDECL(adj_abon, (struct obj *,SCHAR_P));
  345.  
  346. /* ### dog.c ### */
  347.  
  348. E void FDECL(initedog, (struct monst *));
  349. E void FDECL(make_familiar, (struct obj *,XCHAR_P,XCHAR_P));
  350. E struct monst *NDECL(makedog);
  351. E void NDECL(losedogs);
  352. E void NDECL(keepdogs);
  353. E void FDECL(migrate_to_level, (struct monst *,XCHAR_P,XCHAR_P));
  354. E int FDECL(dogfood, (struct monst *,struct obj *));
  355. E struct monst *FDECL(tamedog, (struct monst *,struct obj *));
  356. E void FDECL(abuse_dog, (struct monst *));
  357.  
  358. /* ### dogmove.c ### */
  359.  
  360. E int FDECL(dog_move, (struct monst *,int));
  361. #ifdef OVERLAY
  362. E void FDECL(wantdoor, (int,int,genericptr_t));
  363. #endif
  364.  
  365. /* ### dokick.c ### */
  366.  
  367. E boolean FDECL(ghitm, (struct monst *,struct obj *));
  368. E int NDECL(dokick);
  369. E boolean FDECL(ship_object, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P));
  370. E void NDECL(obj_delivery);
  371. E xchar FDECL(down_gate, (XCHAR_P,XCHAR_P));
  372. E void FDECL(impact_drop, (struct obj *,XCHAR_P,XCHAR_P,XCHAR_P));
  373.  
  374. /* ### dothrow.c ### */
  375.  
  376. E int NDECL(dothrow);
  377. E void FDECL(hitfloor, (struct obj *));
  378. E void FDECL(hurtle, (int,int,int));
  379. E int FDECL(throwit, (struct obj *));
  380. E int FDECL(thitmonst, (struct monst *,struct obj *));
  381. E int FDECL(breaks, (struct obj *,BOOLEAN_P));
  382.  
  383.  
  384. /* ### drawing.c ### */
  385.  
  386. E int FDECL(def_char_to_objclass, (CHAR_P));
  387. E int FDECL(def_char_to_monclass, (CHAR_P));
  388. E void FDECL(assign_graphics, (uchar *,int));
  389. E void FDECL(switch_graphics, (int));
  390. #ifdef REINCARNATION
  391. E void FDECL(assign_rogue_graphics, (BOOLEAN_P));
  392. #endif
  393.  
  394.  
  395. /* ### dungeon.c ### */
  396.  
  397. E void FDECL(save_dungeon, (int));
  398. E void FDECL(restore_dungeon, (int));
  399. E void FDECL(insert_branch, (branch *,BOOLEAN_P));
  400. E void NDECL(init_dungeons);
  401. E s_level *FDECL(find_level, (const char *));
  402. E s_level *FDECL(Is_special, (d_level *));
  403. E branch *FDECL(Is_branchlev, (d_level *));
  404. E xchar FDECL(ledger_no, (d_level *));
  405. E xchar NDECL(maxledgerno);
  406. E schar FDECL(depth, (d_level *));
  407. E xchar FDECL(dunlev, (d_level *));
  408. E xchar FDECL(dunlevs_in_dungeon, (d_level *));
  409. E xchar FDECL(ledger_to_dnum, (XCHAR_P));
  410. E xchar FDECL(ledger_to_dlev, (XCHAR_P));
  411. E xchar FDECL(deepest_lev_reached, (BOOLEAN_P));
  412. E boolean FDECL(on_level, (d_level *,d_level *));
  413. E void FDECL(next_level, (BOOLEAN_P));
  414. E void FDECL(prev_level, (BOOLEAN_P));
  415. E void NDECL(u_on_sstairs);
  416. E void NDECL(u_on_upstairs);
  417. E void NDECL(u_on_dnstairs);
  418. E boolean FDECL(On_stairs, (XCHAR_P,XCHAR_P));
  419. E void FDECL(get_level, (d_level *,int));
  420. E boolean FDECL(Is_botlevel, (d_level *));
  421. E boolean FDECL(Can_fall_thru, (d_level *));
  422. E boolean FDECL(Can_dig_down, (d_level *));
  423. E boolean FDECL(Can_rise_up, (d_level *));
  424. #ifdef MULDGN
  425. E boolean FDECL(In_quest, (d_level *));
  426. E boolean FDECL(In_mines, (d_level *));
  427. E branch *FDECL(dungeon_branch, (const char *));
  428. E boolean FDECL(at_dgn_entrance, (const char *));
  429. #endif
  430. E boolean FDECL(In_hell, (d_level *));
  431. E boolean FDECL(In_tower, (d_level *));
  432. E void FDECL(goto_hell, (BOOLEAN_P,BOOLEAN_P));
  433. E void FDECL(assign_level, (d_level *,d_level *));
  434. E void FDECL(assign_rnd_level, (d_level *,d_level *,int));
  435. E int FDECL(induced_align, (int));
  436. E boolean FDECL(Invocation_lev, (d_level *));
  437. E xchar NDECL(level_difficulty);
  438. #ifdef WIZARD
  439. E void NDECL(print_dungeon);
  440. #endif
  441.  
  442. /* ### eat.c ### */
  443.  
  444. #ifdef OVERLAY
  445. E int NDECL(eatmdone);
  446. E int NDECL(eatfood);
  447. E int NDECL(opentin);
  448. E int NDECL(unfaint);
  449. #endif
  450. #ifdef POLYSELF
  451. E boolean FDECL(is_edible, (struct obj *));
  452. #endif
  453. E void NDECL(init_uhunger);
  454. E int NDECL(Hear_again);
  455. E void NDECL(reset_eat);
  456. E void FDECL(bill_dummy_object, (struct obj *));
  457. E int NDECL(doeat);
  458. E void NDECL(gethungry);
  459. E void FDECL(morehungry, (int));
  460. E void FDECL(lesshungry, (int));
  461. E boolean NDECL(is_fainted);
  462. E void NDECL(reset_faint);
  463. #if 0
  464. E void NDECL(sync_hunger);
  465. #endif
  466. E void FDECL(newuhs, (BOOLEAN_P));
  467. E struct obj *FDECL(floorfood, (const char *,int));
  468. E void NDECL(vomit);
  469. E int FDECL(eaten_stat, (int,struct obj *));
  470. E void FDECL(food_disappears, (struct obj *));
  471.  
  472. /* ### end.c ### */
  473.  
  474. E int NDECL(done1);
  475. E int NDECL(done2);
  476. #ifdef OVERLAY
  477. E int NDECL(done_intr);
  478. #endif
  479. E void FDECL(done_in_by, (struct monst *));
  480. E void VDECL(panic, (const char *,...)) PRINTF_F(1,2);
  481. E void FDECL(done, (int));
  482. #ifdef NOSAVEONHANGUP
  483. E void NDECL(hangup);
  484. #endif
  485. E void FDECL(container_contents, (struct obj *,BOOLEAN_P,BOOLEAN_P));
  486. E void FDECL(terminate, (int));
  487.  
  488. /* ### engrave.c ### */
  489.  
  490. E const char *NDECL(random_engraving);
  491. E const char *FDECL(surface, (int,int));
  492. E struct engr *FDECL(engr_at, (XCHAR_P,XCHAR_P));
  493. #ifdef ELBERETH
  494. E int FDECL(sengr_at, (const char *,XCHAR_P,XCHAR_P));
  495. #endif
  496. E void FDECL(u_wipe_engr, (int));
  497. E void FDECL(wipe_engr_at, (XCHAR_P,XCHAR_P,XCHAR_P));
  498. E void FDECL(read_engr_at, (int,int));
  499. E void FDECL(make_engr_at, (int,int,const char *,long,XCHAR_P));
  500. E void FDECL(del_engr_at, (int,int));
  501. E int NDECL(freehand);
  502. E int NDECL(doengrave);
  503. E void FDECL(save_engravings, (int,int));
  504. E void FDECL(rest_engravings, (int));
  505.  
  506. /* ### exper.c ### */
  507.  
  508. E long FDECL(newuexp, (unsigned));
  509. E int FDECL(experience, (struct monst *,int));
  510. E void FDECL(more_experienced, (int,int));
  511. E void NDECL(losexp);
  512. E void NDECL(newexplevel);
  513. E void NDECL(pluslvl);
  514. E long NDECL(rndexp);
  515.  
  516. /* ### explode.c ### */
  517.  
  518. E void FDECL(explode, (int,int,int,int,CHAR_P));
  519.  
  520. /* ### extralev.c ### */
  521.  
  522. #ifdef REINCARNATION
  523. E void NDECL(makeroguerooms);
  524. E void FDECL(corr, (int,int));
  525. E void NDECL(makerogueghost);
  526. #endif
  527.  
  528. /* ### files.c ### */
  529.  
  530. E FILE *FDECL(fopen_datafile, (const char *,const char *));
  531. #ifdef MFLOPPY
  532. E void NDECL(set_lock_and_bones);
  533. #endif
  534. E void FDECL(set_levelfile_name, (char *,int));
  535. E int FDECL(create_levelfile, (int));
  536. E int FDECL(open_levelfile, (int));
  537. E void FDECL(delete_levelfile, (int));
  538. E void NDECL(clearlocks);
  539. E int FDECL(create_bonesfile, (d_level*,char **));
  540. E int FDECL(open_bonesfile, (d_level*,char **));
  541. E int FDECL(delete_bonesfile, (d_level*));
  542. E void NDECL(compress_bonesfile);
  543. E void NDECL(set_savefile_name);
  544. #ifdef INSURANCE
  545. E void FDECL(save_savefile_name, (int));
  546. #endif
  547. #if defined(WIZARD) && !defined(MICRO)
  548. E void NDECL(set_error_savefile);
  549. #endif
  550. E int NDECL(create_savefile);
  551. E int NDECL(open_savefile);
  552. E int NDECL(delete_savefile);
  553. E void FDECL(compress, (const char *));
  554. E void FDECL(uncompress, (const char *));
  555. E boolean FDECL(lock_file, (const char *,int));
  556. E void FDECL(unlock_file, (const char *));
  557. E void FDECL(read_config_file, (const char *));
  558. E void FDECL(check_recordfile, (const char *));
  559.  
  560. /* ### fountain.c ### */
  561.  
  562. E void FDECL(dogushforth, (int));
  563. # ifdef OVERLAY
  564. E void FDECL(gush, (int,int,genericptr_t));
  565. # endif /* OVERLAY */
  566. E void FDECL(dryup, (XCHAR_P,XCHAR_P));
  567. E void NDECL(drinkfountain);
  568. E void FDECL(dipfountain, (struct obj *));
  569. #ifdef SINKS
  570. E void FDECL(breaksink, (int,int));
  571. E void NDECL(drinksink);
  572. #endif
  573.  
  574. /* ### hack.c ### */
  575.  
  576. E boolean FDECL(revive_nasty, (int,int,const char*));
  577. E void FDECL(movobj, (struct obj *,XCHAR_P,XCHAR_P));
  578. E boolean FDECL(may_dig, (XCHAR_P,XCHAR_P));
  579. E boolean FDECL(may_passwall, (XCHAR_P,XCHAR_P));
  580. E boolean FDECL(invocation_pos, (XCHAR_P,XCHAR_P));
  581. E void NDECL(domove);
  582. E void NDECL(spoteffects);
  583. E char *FDECL(in_rooms, (XCHAR_P,XCHAR_P,int));
  584. E void FDECL(check_special_room, (BOOLEAN_P));
  585. E int NDECL(dopickup);
  586. E void NDECL(lookaround);
  587. E int NDECL(monster_nearby);
  588. E void FDECL(nomul, (int));
  589. E void FDECL(losehp, (int,const char *,BOOLEAN_P));
  590. E int NDECL(weight_cap);
  591. E int NDECL(inv_weight);
  592. E int NDECL(near_capacity);
  593. E int NDECL(max_capacity);
  594. E boolean FDECL(check_capacity, (const char *));
  595. E int NDECL(inv_cnt);
  596. E int FDECL(identify, (struct obj *));
  597.  
  598. /* ### hacklib.c ### */
  599.  
  600. E boolean FDECL(digit, (CHAR_P));
  601. E boolean FDECL(letter, (CHAR_P));
  602. E char FDECL(highc, (CHAR_P));
  603. E char FDECL(lowc, (CHAR_P));
  604. E char *FDECL(lcase, (char *));
  605. E char *FDECL(eos, (char *));
  606. E char *FDECL(s_suffix, (const char *));
  607. E char *FDECL(xcrypt, (const char *));
  608. E boolean FDECL(onlyspace, (const char *));
  609. E char *FDECL(tabexpand, (char *));
  610. E char *FDECL(visctrl, (CHAR_P));
  611. E const char *FDECL(ordin, (int));
  612. E char *FDECL(sitoa, (int));
  613. E int FDECL(sgn, (int));
  614. E int FDECL(rounddiv, (long,int));
  615. E int FDECL(dist2, (int,int,int,int));
  616. E int FDECL(distmin, (int,int,int,int));
  617. E boolean FDECL(online2, (int,int,int,int));
  618. E boolean FDECL(pmatch, (const char *,const char *));
  619. #ifndef STRNCMPI
  620. E int FDECL(strncmpi, (const char *,const char *,int));
  621. #endif
  622. #ifndef STRSTRI
  623. # ifndef GCC_WARN
  624. E  char *FDECL(strstri, (const char *,const char *));
  625. # else
  626. E  char *FDECL(strstri, (char *,const char *));
  627. # endif
  628. #endif
  629. E void NDECL(setrandom);
  630. E int NDECL(getyear);
  631. E char *NDECL(get_date);
  632. E int NDECL(phase_of_the_moon);
  633. E boolean NDECL(friday_13th);
  634. E int NDECL(night);
  635. E int NDECL(midnight);
  636.  
  637. /* ### invent.c ### */
  638.  
  639. #ifdef OVERLAY
  640. E int FDECL(ckunpaid, (struct obj *));
  641. #endif
  642. E struct obj *FDECL(addinv, (struct obj *));
  643. E struct obj *FDECL(hold_another_object,
  644.             (struct obj *,const char *,const char *,const char *));
  645. E void FDECL(useup, (struct obj *));
  646. E void FDECL(freeinv, (struct obj *));
  647. E void FDECL(delallobj, (int,int));
  648. E void FDECL(bury_objs, (int,int));
  649. E void FDECL(delburiedobj, (struct obj *));
  650. E void FDECL(unearth_objs, (int,int));
  651. E void FDECL(delobj, (struct obj *));
  652. E void FDECL(freeobj, (struct obj *));
  653. E struct obj *FDECL(sobj_at, (int,int,int));
  654. E int FDECL(carried, (struct obj *));
  655. E struct obj *FDECL(carrying, (int));
  656. E boolean NDECL(have_lizard);
  657. E struct obj *FDECL(o_on, (unsigned int,struct obj *));
  658. E boolean FDECL(obj_here, (struct obj *,int,int));
  659. E struct obj *FDECL(g_at, (int,int));
  660. E struct obj *FDECL(mkgoldobj, (long));
  661. E struct obj *FDECL(getobj, (const char *,const char *));
  662. E int FDECL(ggetobj, (const char *,int (*)(OBJ_P),int));
  663. E int FDECL(askchain, (struct obj **,const char *,int,int (*)(OBJ_P),
  664.             int (*)(OBJ_P),int,const char *));
  665. E void FDECL(prinv, (const char *,struct obj *,long));
  666. E char *FDECL(xprname, (struct obj *,CHAR_P,BOOLEAN_P,long));
  667. E int NDECL(ddoinv);
  668. E char FDECL(display_inventory, (const char *,BOOLEAN_P));
  669. E int NDECL(dotypeinv);
  670. E int NDECL(dolook);
  671. E void FDECL(stackobj, (struct obj *));
  672. E int NDECL(doprgold);
  673. E int NDECL(doprwep);
  674. E int NDECL(doprarm);
  675. E int NDECL(doprring);
  676. E int NDECL(dopramulet);
  677. E int NDECL(doprtool);
  678. E void FDECL(useupf, (struct obj *));
  679. E char *FDECL(let_to_name, (CHAR_P,BOOLEAN_P));
  680. E void NDECL(reassign);
  681. E int NDECL(doorganize);
  682. E int FDECL(count_unpaid, (struct obj *));
  683.  
  684. /* ### ioctl.c ### */
  685.  
  686. #ifdef UNIX
  687. E void NDECL(getwindowsz);
  688. E void NDECL(getioctls);
  689. E void NDECL(setioctls);
  690. # ifdef SUSPEND
  691. E int NDECL(dosuspend);
  692. # endif /* SUSPEND */
  693. #endif /* UNIX */
  694.  
  695. /* ### lock.c ### */
  696.  
  697. #ifdef OVERLAY
  698. E int NDECL(forcelock);
  699. E int NDECL(picklock);
  700. #endif
  701. E boolean FDECL(picking_lock, (int *,int *));
  702. E boolean FDECL(picking_at, (int,int));
  703. E void NDECL(reset_pick);
  704. E int FDECL(pick_lock, (struct obj *));
  705. E int NDECL(doforce);
  706. E boolean FDECL(boxlock, (struct obj *,struct obj *));
  707. E boolean FDECL(doorlock, (struct obj *,int,int));
  708. E int NDECL(doopen);
  709. E int NDECL(doclose);
  710.  
  711. #ifdef MAC
  712.  
  713. /* ### macerrs.c ### */
  714.  
  715. E void FDECL(comment, (char *,long));
  716. E void FDECL(showerror, (char *,const char *));
  717. E Boolean FDECL(itworked, (short));
  718. E void FDECL(mustwork, (short));
  719. E void FDECL(attemptingto, (char *));
  720. E void FDECL(pushattemptingto, (char *));
  721. E void NDECL(popattempt);
  722.  
  723. /* ### macfile.c ### */
  724.  
  725. E int FDECL(maccreat, (const char *,long));
  726. E int FDECL(macopen, (const char *,int,long));
  727. E int FDECL(macclose, (int));
  728. E int FDECL(macread, (int,void *,unsigned));
  729. E int FDECL(macwrite, (int,void *,unsigned));
  730. E long FDECL(macseek, (int,long,short));
  731.  
  732. /* ### macmain.c ### */
  733.  
  734. E void NDECL(UnloadAllSegments);
  735.  
  736. /* ### macsnd.c ### */
  737.  
  738. E void FDECL(mac_speaker, (struct obj *,char *));
  739.  
  740. /* ### mactopl.c ### */
  741.  
  742. E void FDECL(addtopl, (const char *));
  743. E void FDECL(update_topl, (const char *));
  744.  
  745. /* ### macunix.c ### */
  746.  
  747. E int FDECL(uptodate, (int));
  748. E void FDECL(regularize, (char *));
  749. E void NDECL(getlock);
  750.  
  751. /* ### macwin.c ### */
  752.  
  753. E void FDECL(addToKeyQueue, (int,Boolean));
  754. E void FDECL(lock_mouse_cursor, (Boolean));
  755.  
  756. #endif /* MAC */
  757.  
  758. /* ### mail.c ### */
  759.  
  760. #ifdef MAIL
  761. # ifdef UNIX
  762. E void NDECL(getmailstatus);
  763. # endif
  764. E void NDECL(ckmailstatus);
  765. E void FDECL(readmail, (struct obj *));
  766. #endif /* MAIL */
  767.  
  768. /* ### makemon.c ### */
  769.  
  770. E boolean FDECL(is_home_elemental, (struct permonst *));
  771. E struct monst *FDECL(makemon, (struct permonst *,int,int));
  772. E boolean FDECL(enexto, (coord *,XCHAR_P,XCHAR_P,struct permonst *));
  773. E int FDECL(goodpos, (int,int,struct monst *,struct permonst *));
  774. E void FDECL(rloc, (struct monst *));
  775. E void FDECL(rloc_to, (struct monst *,int,int));
  776. E void FDECL(rloc_shk, (struct monst *));
  777. E void FDECL(vloc, (struct monst *));
  778. E struct permonst *NDECL(rndmonst);
  779. E struct permonst *FDECL(mkclass, (CHAR_P,int));
  780. E int FDECL(adj_lev, (struct permonst *));
  781. E struct permonst *FDECL(grow_up, (struct monst *,struct monst *));
  782. E int FDECL(mongets, (struct monst *,int));
  783. E int FDECL(golemhp, (int));
  784. E boolean FDECL(peace_minded, (struct permonst *));
  785. E void FDECL(set_malign, (struct monst *));
  786. E void FDECL(set_mimic_sym, (struct monst *));
  787.  
  788. /* ### mcastu.c ### */
  789.  
  790. E int FDECL(castmu, (struct monst *,struct attack *));
  791. E int FDECL(buzzmu, (struct monst *,struct attack *));
  792.  
  793. /* ### mhitm.c ### */
  794.  
  795. E int FDECL(fightm, (struct monst *));
  796. E int FDECL(mattackm, (struct monst *,struct monst *));
  797. E int FDECL(noattacks, (struct permonst *));
  798.  
  799. /* ### mhitu.c ### */
  800.  
  801. #ifdef POLYSELF
  802. E struct monst *NDECL(cloneu);
  803. #endif
  804. E void FDECL(expels, (struct monst *,struct permonst *,BOOLEAN_P));
  805. E int FDECL(mattacku, (struct monst *));
  806. E int FDECL(gazemu, (struct monst *,struct attack *));
  807. E void FDECL(mdamageu, (struct monst *,int));
  808. E int FDECL(could_seduce, (struct monst *,struct monst *,struct attack *));
  809. #ifdef SEDUCE
  810. E int FDECL(doseduce, (struct monst *));
  811. #endif
  812.  
  813. /* ### minion.c ### */
  814.  
  815. E void FDECL(msummon, (struct permonst *));
  816. E void FDECL(summon_minion, (ALIGNTYP_P,BOOLEAN_P));
  817. E int FDECL(demon_talk, (struct monst *));
  818. E long FDECL(bribe, (struct monst *));
  819. E int FDECL(dprince, (ALIGNTYP_P));
  820. E int FDECL(dlord, (ALIGNTYP_P));
  821. E int NDECL(llord);
  822. E int FDECL(ndemon, (ALIGNTYP_P));
  823. E int NDECL(lminion);
  824.  
  825. /* ### mklev.c ### */
  826.  
  827. #ifdef OVERLAY
  828. E int FDECL(do_comp, (genericptr_t,genericptr_t));
  829. #endif
  830. E void NDECL(sort_rooms);
  831. E void FDECL(add_room, (int,int,int,int,BOOLEAN_P,SCHAR_P,BOOLEAN_P));
  832. E void FDECL(add_subroom, (struct mkroom *,int,int,int,int,
  833.                BOOLEAN_P,SCHAR_P,BOOLEAN_P));
  834. E void NDECL(makecorridors);
  835. E void FDECL(add_door, (int,int,struct mkroom *));
  836. E void NDECL(mklev);
  837. #ifdef SPECIALIZATION
  838. E void FDECL(topologize, (struct mkroom *,BOOLEAN_P));
  839. #else
  840. E void FDECL(topologize, (struct mkroom *));
  841. #endif
  842. E void FDECL(place_branch, (branch *,XCHAR_P,XCHAR_P));
  843. E boolean FDECL(occupied, (XCHAR_P,XCHAR_P));
  844. E int FDECL(okdoor, (XCHAR_P,XCHAR_P));
  845. E void FDECL(dodoor, (int,int,struct mkroom *));
  846. E void FDECL(mktrap, (int,int,struct mkroom *,coord*));
  847. E void FDECL(mkstairs, (XCHAR_P,XCHAR_P,CHAR_P,struct mkroom *));
  848. E void NDECL(mkinvokearea);
  849.  
  850. /* ### mkmap.c ### */
  851.  
  852. void FDECL(flood_fill_rm, (int,int,int,BOOLEAN_P,BOOLEAN_P));
  853.  
  854. /* ### mkmaze.c ### */
  855.  
  856. E void FDECL(wallification, (int,int,int,int));
  857. E void FDECL(walkfrom, (int,int));
  858. E void FDECL(makemaz, (const char *));
  859. E void FDECL(move, (int *,int *,int));
  860. E void FDECL(mazexy, (coord *));
  861. E void NDECL(bound_digging);
  862. E void FDECL(mkportal, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  863. E boolean FDECL(bad_location, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  864. E void FDECL(place_lregion, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
  865.                  XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
  866.                  XCHAR_P,d_level *));
  867. E void NDECL(movebubbles);
  868. E void NDECL(water_friction);
  869. E void FDECL(save_waterlevel, (int));
  870. E void FDECL(restore_waterlevel, (int));
  871.  
  872. /* ### mkobj.c ### */
  873.  
  874. E struct obj *FDECL(mkobj_at, (CHAR_P,int,int,BOOLEAN_P));
  875. E struct obj *FDECL(mksobj_at, (int,int,int,BOOLEAN_P));
  876. E struct obj *FDECL(mkobj, (CHAR_P,BOOLEAN_P));
  877. E int NDECL(rndmonnum);
  878. E struct obj *FDECL(mksobj, (int,BOOLEAN_P,BOOLEAN_P));
  879. E int FDECL(weight, (struct obj *));
  880. E void FDECL(mkgold, (long,int,int));
  881. E struct obj *FDECL(mkcorpstat, (int,struct permonst *,int,int,BOOLEAN_P));
  882. E struct obj *FDECL(mk_tt_object, (int,int,int));
  883. E struct obj *FDECL(mk_named_object, (int,struct permonst *,int,int,char *,int));
  884. E void FDECL(bless, (struct obj *));
  885. E void FDECL(unbless, (struct obj *));
  886. E void FDECL(curse, (struct obj *));
  887. E void FDECL(uncurse, (struct obj *));
  888. E void FDECL(blessorcurse, (struct obj *,int));
  889. E boolean FDECL(is_flammable, (struct obj *));
  890. E void FDECL(place_object, (struct obj *,int,int));
  891. E void FDECL(move_object, (struct obj *,int,int));
  892. E void FDECL(remove_object, (struct obj *));
  893. E int FDECL(bcsign, (struct obj *));
  894.  
  895. /* ### mkroom.c ### */
  896.  
  897. E void FDECL(mkroom, (int));
  898. E void FDECL(fill_zoo, (struct mkroom *));
  899. E boolean FDECL(nexttodoor, (int,int));
  900. E boolean FDECL(has_dnstairs, (struct mkroom *));
  901. E boolean FDECL(has_upstairs, (struct mkroom *));
  902. E int FDECL(somex, (struct mkroom *));
  903. E int FDECL(somey, (struct mkroom *));
  904. E boolean FDECL(inside_room, (struct mkroom *,XCHAR_P,XCHAR_P));
  905. E boolean FDECL(somexy, (struct mkroom *,coord *));
  906. E void FDECL(mkundead, (coord *));
  907. E struct permonst *NDECL(courtmon);
  908. E void FDECL(save_rooms, (int));
  909. E void FDECL(rest_rooms, (int));
  910. E struct mkroom *FDECL(search_special, (SCHAR_P));
  911.  
  912. /* ### mon.c ### */
  913.  
  914. E int FDECL(minwater, (struct monst *));
  915. E void NDECL(movemon);
  916. E void FDECL(meatgold, (struct monst *));
  917. E void FDECL(meatobj, (struct monst *));
  918. E void FDECL(mpickgold, (struct monst *));
  919. E void FDECL(mpickgems, (struct monst *));
  920. E void FDECL(mpickstuff, (struct monst *,const char *));
  921. E int FDECL(curr_mon_load, (struct monst *));
  922. E int FDECL(max_mon_load, (struct monst *));
  923. E boolean FDECL(can_carry, (struct monst *,struct obj *));
  924. E int FDECL(mfndpos, (struct monst *,coord *,long *,long));
  925. E boolean FDECL(monnear, (struct monst *,int,int));
  926. E void FDECL(monfree, (struct monst *));
  927. E void FDECL(replmon, (struct monst *,struct monst *));
  928. E void FDECL(relmon, (struct monst *));
  929. E void FDECL(mondead, (struct monst *));
  930. E void FDECL(mondied, (struct monst *));
  931. E void FDECL(mongone, (struct monst *));
  932. E void FDECL(monstone, (struct monst *));
  933. E void FDECL(monkilled, (struct monst *,const char *,int));
  934. E void FDECL(unstuck, (struct monst *));
  935. E void FDECL(killed, (struct monst *));
  936. E void FDECL(xkilled, (struct monst *,int));
  937. E void FDECL(mon_to_stone, (struct monst*));
  938. E void FDECL(mnexto, (struct monst *));
  939. E boolean FDECL(mnearto, (struct monst *,XCHAR_P,XCHAR_P,BOOLEAN_P));
  940. E void FDECL(poisontell, (int));
  941. E void FDECL(poisoned, (const char *,int,const char *,int));
  942. E void FDECL(m_respond, (struct monst *));
  943. E void FDECL(setmangry, (struct monst *));
  944. E void FDECL(wakeup, (struct monst *));
  945. E void NDECL(wake_nearby);
  946. E void FDECL(seemimic, (struct monst *));
  947. E void NDECL(rescham);
  948. E void NDECL(restartcham);
  949. E int FDECL(newcham, (struct monst *,struct permonst *));
  950. E void FDECL(golemeffects, (struct monst *,int,int));
  951. E boolean FDECL(angry_guards, (BOOLEAN_P));
  952. E void NDECL(pacify_guards);
  953.  
  954. /* ### mondata.c ### */
  955.  
  956. E boolean FDECL(attacktype, (struct permonst *,int));
  957. E boolean FDECL(poly_when_stoned, (struct permonst *));
  958. E boolean FDECL(resists_drli, (struct permonst *));
  959. E boolean FDECL(ranged_attk, (struct permonst *));
  960. E boolean FDECL(hates_silver, (struct permonst *));
  961. E boolean FDECL(can_track, (struct permonst *));
  962. #if defined(POLYSELF) || defined(MUSE)
  963. E boolean FDECL(breakarm, (struct permonst *));
  964. E boolean FDECL(sliparm, (struct permonst *));
  965. #endif
  966. E boolean FDECL(sticks, (struct permonst *));
  967. /* E boolean FDECL(canseemon, (struct monst *)); */
  968. E boolean FDECL(dmgtype, (struct permonst *,int));
  969. E int FDECL(max_passive_dmg, (struct monst *,struct monst *));
  970. E int FDECL(monsndx, (struct permonst *));
  971. E int FDECL(name_to_mon, (char *));
  972. #ifdef POLYSELF
  973. E boolean FDECL(webmaker, (struct permonst *));
  974. #endif
  975. E int FDECL(gender, (struct monst *));
  976. E int FDECL(pronoun_gender, (struct monst *));
  977. E boolean FDECL(levl_follower, (struct monst *));
  978. E struct permonst *NDECL(player_mon);
  979. E int FDECL(little_to_big, (int));
  980. E int FDECL(big_to_little, (int));
  981. E const char *FDECL(locomotion, (const struct permonst *,const char *));
  982.  
  983. /* ### monmove.c ### */
  984.  
  985. # ifdef POLYSELF
  986. E boolean FDECL(itsstuck, (struct monst *));
  987. # endif
  988. E boolean FDECL(mb_trapped, (struct monst *));
  989. E int FDECL(dochugw, (struct monst *));
  990. E boolean FDECL(onscary, (int,int,struct monst *));
  991. E int FDECL(dochug, (struct monst *));
  992. E int FDECL(m_move, (struct monst *,int));
  993. E boolean FDECL(closed_door, (int,int));
  994. E boolean FDECL(accessible, (int,int));
  995. E void FDECL(set_apparxy, (struct monst *));
  996.  
  997. /* ### monst.c ### */
  998.  
  999. E void NDECL(monst_init);
  1000.  
  1001. /* ### monstr.c ### */
  1002.  
  1003. E void NDECL(monstr_init);
  1004.  
  1005. /* ### mplayer.c ### */
  1006.  
  1007. E struct monst *FDECL(mk_mplayer, (struct permonst *,XCHAR_P,
  1008.                    XCHAR_P,BOOLEAN_P));
  1009. E void FDECL(create_mplayers, (int,BOOLEAN_P));
  1010. E void FDECL(mplayer_talk, (struct monst *));
  1011.  
  1012. #ifdef MICRO
  1013.  
  1014. /* ### msdos.c,os2.c,tos.c,winnt.c ### */
  1015.  
  1016. #  ifndef WIN32
  1017. E int NDECL(tgetch);
  1018. #  endif
  1019. #  ifndef TOS
  1020. E char NDECL(switchar);
  1021. #  endif
  1022. # ifndef __GO32__
  1023. E long FDECL(freediskspace, (char *));
  1024. E int FDECL(findfirst, (char *));
  1025. E int NDECL(findnext);
  1026. E char *NDECL(foundfile_buffer);
  1027. E long FDECL(filesize, (char *));
  1028. # endif /* __GO32__ */
  1029. E void FDECL(chdrive, (char *));
  1030. # ifndef TOS
  1031. E void NDECL(disable_ctrlP);
  1032. E void NDECL(enable_ctrlP);
  1033. # endif
  1034. # if defined(MICRO) && !defined(AMIGA) && !defined(WINNT)
  1035. E void NDECL(get_scr_size);
  1036. #  ifndef TOS
  1037. E void FDECL(gotoxy, (int,int));
  1038. #  endif
  1039. # endif
  1040. # ifdef TOS
  1041. E int FDECL(_copyfile, (char *,char *));
  1042. E int NDECL(kbhit);
  1043. E void NDECL(set_colors);
  1044. E void NDECL(restore_colors);
  1045. #  ifdef SUSPEND
  1046. E int NDECL(dosuspend);
  1047. #  endif
  1048. # endif /* TOS */
  1049. # ifdef WIN32
  1050. E void FDECL(nt_regularize, (char *));
  1051. # endif /* WIN32 */
  1052.  
  1053. #endif /* MICRO */
  1054.  
  1055. /* ### mthrowu.c ### */
  1056.  
  1057. E int FDECL(thitu, (int,int,struct obj *,const char *));
  1058. E void FDECL(thrwmu, (struct monst *));
  1059. E int FDECL(spitmu, (struct monst *,struct attack *));
  1060. E int FDECL(breamu, (struct monst *,struct attack *));
  1061. E boolean FDECL(linedup, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  1062. E boolean FDECL(lined_up, (struct monst *));
  1063. E struct obj *FDECL(m_carrying, (struct monst *,int));
  1064. E void FDECL(m_useup, (struct monst *,struct obj *));
  1065. #ifdef MUSE
  1066. E void FDECL(m_throw, (struct monst *,int,int,int,int,int,struct obj *));
  1067. #endif
  1068.  
  1069. /* ### muse.c ### */
  1070.  
  1071. #ifdef MUSE
  1072. E boolean FDECL(find_defensive, (struct monst *));
  1073. E int FDECL(use_defensive, (struct monst *));
  1074. E int FDECL(rnd_defensive_item, (struct monst *));
  1075. E boolean FDECL(find_offensive, (struct monst *));
  1076. E int FDECL(use_offensive, (struct monst *));
  1077. E int FDECL(rnd_offensive_item, (struct monst *));
  1078. E boolean FDECL(find_misc, (struct monst *));
  1079. E int FDECL(use_misc, (struct monst *));
  1080. E int FDECL(rnd_misc_item, (struct monst *));
  1081. E boolean FDECL(searches_for_item, (struct monst *,struct obj *));
  1082. E boolean FDECL(mon_reflects, (struct monst *,const char *));
  1083. #endif
  1084.  
  1085. /* ### music.c ### */
  1086.  
  1087. E void NDECL(awaken_soldiers);
  1088. E int FDECL(do_play_instrument, (struct obj *));
  1089.  
  1090. /* ### nttty.c ### */
  1091.  
  1092. #ifdef WIN32CON
  1093. E void NDECL(get_scr_size);
  1094. E int NDECL(kbhit);
  1095. E void NDECL(nttty_open);
  1096. E void NDECL(nttty_rubout);
  1097. E int NDECL(tgetch);
  1098. #endif
  1099.  
  1100. /* ### o_init.c ### */
  1101.  
  1102. E int FDECL(letindex, (CHAR_P));
  1103. E void NDECL(init_objects);
  1104. E int NDECL(find_skates);
  1105. E void NDECL(oinit);
  1106. E void FDECL(savenames, (int));
  1107. E void FDECL(restnames, (int));
  1108. E void FDECL(discover_object, (int,BOOLEAN_P));
  1109. E void FDECL(undiscover_object, (int));
  1110. E int NDECL(dodiscovered);
  1111.  
  1112. /* ### objects.c ### */
  1113.  
  1114. E void NDECL(objects_init);
  1115.  
  1116. /* ### objnam.c ### */
  1117.  
  1118. E char *FDECL(typename, (int));
  1119. E boolean FDECL(obj_is_pname, (struct obj *));
  1120. E char *FDECL(distant_name, (struct obj *,char *(*)(OBJ_P)));
  1121. E char *FDECL(xname, (struct obj *));
  1122. E char *FDECL(doname, (struct obj *));
  1123. E char *FDECL(singular, (struct obj *,char *(*)(OBJ_P)));
  1124. E char *FDECL(an, (const char *));
  1125. E char *FDECL(An, (const char *));
  1126. E char *FDECL(The, (const char *));
  1127. E char *FDECL(the, (const char *));
  1128. E char *FDECL(aobjnam, (struct obj *,const char *));
  1129. E char *FDECL(Doname2, (struct obj *));
  1130. E char *FDECL(makeplural, (const char *));
  1131. E char *FDECL(makesingular, (const char *));
  1132. E struct obj *FDECL(readobjnam, (char *));
  1133. E int FDECL(rnd_class, (int,int));
  1134.  
  1135. /* ### options.c ### */
  1136.  
  1137. E void NDECL(initoptions);
  1138. E void FDECL(parseoptions, (char *,BOOLEAN_P,BOOLEAN_P));
  1139. E int NDECL(doset);
  1140. E int NDECL(dotogglepickup);
  1141. E void NDECL(option_help);
  1142. E void FDECL(next_opt, (winid,const char *));
  1143. #ifdef TUTTI_FRUTTI
  1144. E int FDECL(fruitadd, (char *));
  1145. #endif
  1146.  
  1147. /* ### pager.c ### */
  1148.  
  1149. E int NDECL(dowhatis);
  1150. E int NDECL(doquickwhatis);
  1151. E int NDECL(doidtrap);
  1152. E int NDECL(dowhatdoes);
  1153. E int NDECL(dohelp);
  1154. E int NDECL(dohistory);
  1155.  
  1156. /* ### pcmain.c ### */
  1157.  
  1158. #if defined(MICRO)
  1159. # ifdef CHDIR
  1160. E void FDECL(chdirx, (char *,BOOLEAN_P));
  1161. # endif /* CHDIR */
  1162. #endif /* MICRO */
  1163.  
  1164. /* ### pcsys.c ### */
  1165.  
  1166. #ifdef MICRO
  1167. E void NDECL(flushout);
  1168. E int NDECL(dosh);
  1169. # ifdef MFLOPPY
  1170. E void FDECL(eraseall, (const char *,const char *));
  1171. E void FDECL(copybones, (int));
  1172. E void NDECL(playwoRAMdisk);
  1173. E int FDECL(saveDiskPrompt, (int));
  1174. E void NDECL(gameDiskPrompt);
  1175. # endif
  1176. E void FDECL(append_slash, (char *));
  1177. E void FDECL(getreturn, (const char *));
  1178. # ifndef AMIGA
  1179. E void VDECL(msmsg, (const char *,...));
  1180. # endif
  1181. E FILE *FDECL(fopenp, (const char *,const char *));
  1182. E void FDECL(msexit, (int));
  1183. #endif /* MICRO */
  1184.  
  1185. /* ### pctty.c ### */
  1186.  
  1187. #if defined(MICRO)
  1188. E void NDECL(gettty);
  1189. E void FDECL(settty, (const char *));
  1190. E void NDECL(setftty);
  1191. E void VDECL(error, (const char *,...));
  1192. #endif /* MICRO */
  1193.  
  1194. /* ### pcunix.c ### */
  1195.  
  1196. #if defined(MICRO)
  1197. E void FDECL(gethdate, (char *));
  1198. E int FDECL(uptodate, (int));
  1199. E void FDECL(regularize, (char *));
  1200. #endif /* MICRO */
  1201.  
  1202. /* ### pickup.c ### */
  1203.  
  1204. E int FDECL(collect_obj_classes, (char *,struct obj *,BOOLEAN_P,BOOLEAN_P));
  1205. #ifdef OVERLAY
  1206. E int FDECL(ck_bag, (struct obj *));
  1207. E int FDECL(in_container, (struct obj *));
  1208. E int FDECL(out_container, (struct obj *));
  1209. #endif
  1210. E void FDECL(pickup, (int));
  1211. E struct obj *FDECL(pick_obj, (struct obj *));
  1212. E int NDECL(encumber_msg);
  1213. E int NDECL(doloot);
  1214. E int FDECL(use_container, (struct obj *,int));
  1215.  
  1216. /* ### pline.c ### */
  1217.  
  1218. E void VDECL(pline, (const char *,...)) PRINTF_F(1,2);
  1219. E void VDECL(Norep, (const char *,...)) PRINTF_F(1,2);
  1220. E void VDECL(You, (const char *,...)) PRINTF_F(1,2);
  1221. E void VDECL(Your, (const char *,...)) PRINTF_F(1,2);
  1222. E void VDECL(verbalize, (const char *,...)) PRINTF_F(1,2);
  1223. E void VDECL(raw_printf, (const char *,...)) PRINTF_F(1,2);
  1224. E void VDECL(impossible, (const char *,...)) PRINTF_F(1,2);
  1225. E const char *FDECL(align_str, (ALIGNTYP_P));
  1226. E void FDECL(mstatusline, (struct monst *));
  1227. E void NDECL(ustatusline);
  1228.  
  1229. /* ### polyself.c ### */
  1230.  
  1231. E void NDECL(change_sex);
  1232. E void NDECL(newman);
  1233. #ifdef POLYSELF
  1234. E void NDECL(polyself);
  1235. E int FDECL(polymon, (int));
  1236. E void NDECL(rehumanize);
  1237. E int NDECL(dobreathe);
  1238. E int NDECL(dospit);
  1239. E int NDECL(doremove);
  1240. E int NDECL(dospinweb);
  1241. E int NDECL(dosummon);
  1242. E int NDECL(doconfuse);
  1243. E int NDECL(dohide);
  1244. E int NDECL(domindblast);
  1245. #endif
  1246. E const char *FDECL(body_part, (int));
  1247. E int NDECL(poly_gender);
  1248. #ifdef POLYSELF
  1249. E void FDECL(ugolemeffects, (int,int));
  1250. #endif
  1251.  
  1252. /* ### potion.c ### */
  1253.  
  1254. E void FDECL(make_confused, (long,BOOLEAN_P));
  1255. E void FDECL(make_stunned, (long,BOOLEAN_P));
  1256. E void FDECL(make_blinded, (long,BOOLEAN_P));
  1257. E void FDECL(make_sick, (long,BOOLEAN_P));
  1258. E void FDECL(make_vomiting, (long,BOOLEAN_P));
  1259. E void FDECL(make_hallucinated, (long,BOOLEAN_P,long));
  1260. E int NDECL(dodrink);
  1261. E int FDECL(dopotion, (struct obj *));
  1262. E int FDECL(peffects, (struct obj *));
  1263. E void FDECL(healup, (int,int,BOOLEAN_P,BOOLEAN_P));
  1264. E void FDECL(strange_feeling, (struct obj *,const char *));
  1265. E void FDECL(potionhit, (struct monst *,struct obj *));
  1266. E void FDECL(potionbreathe, (struct obj *));
  1267. E boolean FDECL(get_wet, (struct obj *));
  1268. E int NDECL(dodip);
  1269. E void FDECL(djinni_from_bottle, (struct obj *));
  1270.  
  1271. /* ### pray.c ### */
  1272.  
  1273. #ifdef OVERLAY
  1274. E int NDECL(prayer_done);
  1275. #endif
  1276. E int NDECL(dosacrifice);
  1277. E int NDECL(dopray);
  1278. E const char *NDECL(u_gname);
  1279. E int NDECL(doturn);
  1280. E const char *NDECL(a_gname);
  1281. E const char *FDECL(a_gname_at, (XCHAR_P x,XCHAR_P y));
  1282. E const char *FDECL(align_gname, (ALIGNTYP_P));
  1283. E void FDECL(altar_wrath, (int,int));
  1284.  
  1285.  
  1286. /* ### priest.c ### */
  1287.  
  1288. E int FDECL(move_special, (struct monst *,BOOLEAN_P,SCHAR_P,BOOLEAN_P,BOOLEAN_P,
  1289.                XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  1290. E char FDECL(temple_occupied, (char *));
  1291. E int FDECL(pri_move, (struct monst *));
  1292. E void FDECL(priestini, (d_level *,struct mkroom *,int,int,BOOLEAN_P));
  1293. E char *FDECL(priestname, (struct monst *));
  1294. E boolean FDECL(p_coaligned, (struct monst *));
  1295. E struct monst *FDECL(findpriest, (CHAR_P));
  1296. E void FDECL(intemple, (int));
  1297. E void FDECL(priest_talk, (struct monst *));
  1298. E struct monst *FDECL(mk_roamer, (struct permonst *,ALIGNTYP_P,
  1299.                   XCHAR_P,XCHAR_P,BOOLEAN_P));
  1300. E void FDECL(reset_hostility, (struct monst *));
  1301. E boolean FDECL(in_your_sanctuary, (XCHAR_P,XCHAR_P));
  1302. E void FDECL(ghod_hitsu, (struct monst *));
  1303. E void NDECL(angry_priest);
  1304. E void NDECL(clearpriests);
  1305. E void FDECL(restpriest, (struct monst *,BOOLEAN_P));
  1306.  
  1307. #ifdef MULDGN
  1308. /* ### quest.c ### */
  1309.  
  1310. E void NDECL(quest_init);
  1311. E void NDECL(onquest);
  1312. E void NDECL(nemdead);
  1313. E void NDECL(artitouch);
  1314. E boolean NDECL(ok_to_quest);
  1315. E void FDECL(leader_speaks, (struct monst *));
  1316. E void NDECL(nemesis_speaks);
  1317. E void FDECL(quest_chat, (struct monst *));
  1318. E void FDECL(quest_talk, (struct monst *));
  1319. E void FDECL(quest_stat_check, (struct monst *));
  1320.  
  1321. /* ### questpgr.c ### */
  1322.  
  1323. E void NDECL(load_qtlist);
  1324. E boolean FDECL(is_quest_artifact, (struct obj*));
  1325. E void FDECL(com_pager, (int));
  1326. E void FDECL(qt_pager, (int));
  1327. E struct permonst *NDECL(qt_montype);
  1328. E const char *NDECL(ldrname);
  1329. E boolean NDECL(leaderless);
  1330. #endif
  1331.  
  1332. /* ### random.c ### */
  1333.  
  1334. #if defined(RANDOM) && !defined(__GO32__) /* djgpp has its own random */
  1335. E void FDECL(srandom, (unsigned));
  1336. E char *FDECL(initstate, (unsigned,char *,int));
  1337. E char *FDECL(setstate, (char *));
  1338. E long NDECL(random);
  1339. #endif /* RANDOM */
  1340.  
  1341. /* ### read.c ### */
  1342.  
  1343. E int NDECL(doread);
  1344. E void FDECL(recharge, (struct obj *,int));
  1345. E int FDECL(seffects, (struct obj *));
  1346. #ifdef OVERLAY
  1347. E void FDECL(set_lit, (int,int,genericptr_t));
  1348. #endif /* OVERLAY */
  1349. E void FDECL(litroom, (BOOLEAN_P,struct obj *));
  1350. E void FDECL(do_genocide, (int));
  1351. E void FDECL(punish, (struct obj *));
  1352. E void NDECL(unpunish);
  1353. E boolean FDECL(cant_create, (int *));
  1354. #ifdef WIZARD
  1355. E boolean NDECL(create_particular);
  1356. #endif
  1357.  
  1358. /* ### rect.c ### */
  1359.  
  1360. E void NDECL(init_rect);
  1361. E NhRect *FDECL(get_rect, (NhRect *));
  1362. E NhRect *NDECL(rnd_rect);
  1363. E void FDECL(remove_rect, (NhRect *));
  1364. E void FDECL(add_rect, (NhRect *));
  1365. E void FDECL(split_rects, (NhRect *,NhRect *));
  1366.  
  1367. /* ### restore.c ### */
  1368.  
  1369. E int FDECL(dorecover, (int));
  1370. E void NDECL(trickery);
  1371. E void FDECL(getlev, (int,int,XCHAR_P,BOOLEAN_P));
  1372. E void NDECL(minit);
  1373. #ifdef ZEROCOMP
  1374. E int FDECL(mread, (int,genericptr_t,unsigned int));
  1375. #else
  1376. E void FDECL(mread, (int,genericptr_t,unsigned int));
  1377. #endif
  1378.  
  1379. /* ### rip.c ### */
  1380.  
  1381. E void FDECL(genl_outrip, (winid,int));
  1382.  
  1383. /* ### rnd.c ### */
  1384.  
  1385. E int FDECL(rn2, (int));
  1386. E int FDECL(rnl, (int));
  1387. E int FDECL(rnd, (int));
  1388. E int FDECL(d, (int,int));
  1389. E int FDECL(rne, (int));
  1390. E int FDECL(rnz, (int));
  1391.  
  1392. /* ### rumors.c ### */
  1393.  
  1394. E char *FDECL(getrumor, (int));
  1395. E void FDECL(outrumor, (int,BOOLEAN_P));
  1396. E void FDECL(save_oracles, (int));
  1397. E void FDECL(restore_oracles, (int));
  1398. E int FDECL(doconsult, (struct monst *));
  1399.  
  1400. /* ### save.c ### */
  1401.  
  1402. E int NDECL(dosave);
  1403. #ifndef NOSAVEONHANGUP
  1404. E int NDECL(hangup);
  1405. #endif /* NOSAVEONHANGUP */
  1406. E int NDECL(dosave0);
  1407. #ifdef INSURANCE
  1408. E void NDECL(savestateinlock);
  1409. #endif
  1410. #ifdef MFLOPPY
  1411. E boolean FDECL(savelev, (int,XCHAR_P,int));
  1412. E boolean FDECL(swapin_file, (int));
  1413. E void NDECL(co_false);
  1414. #else
  1415. E void FDECL(savelev, (int,XCHAR_P,int));
  1416. #endif
  1417. E void FDECL(bufon, (int));
  1418. E void FDECL(bflush, (int));
  1419. E void FDECL(bwrite, (int,genericptr_t,unsigned int));
  1420. E void FDECL(bclose, (int));
  1421. #ifdef TUTTI_FRUTTI
  1422. E void FDECL(savefruitchn, (int,int));
  1423. #endif
  1424.  
  1425. /* ### shk.c ### */
  1426.  
  1427. E char *FDECL(shkname, (struct monst *));
  1428. E void FDECL(shkgone, (struct monst *));
  1429. E void FDECL(set_residency, (struct monst *,BOOLEAN_P));
  1430. E void FDECL(replshk, (struct monst *,struct monst *));
  1431. E void FDECL(restshk, (struct monst *,BOOLEAN_P));
  1432. E int FDECL(inhishop, (struct monst *));
  1433. #ifdef SOUNDS
  1434. E boolean FDECL(tended_shop, (struct mkroom *));
  1435. #endif
  1436. E struct monst *FDECL(shop_keeper, (CHAR_P));
  1437. E void FDECL(delete_contents, (struct obj *));
  1438. E void FDECL(obfree, (struct obj *,struct obj *));
  1439. E int NDECL(dopay);
  1440. E void FDECL(home_shk, (struct monst *,BOOLEAN_P));
  1441. E void FDECL(hot_pursuit, (struct monst *));
  1442. E void FDECL(make_happy_shk, (struct monst *,BOOLEAN_P));
  1443. E void FDECL(make_angry_shk, (struct monst *,XCHAR_P,XCHAR_P));
  1444. E boolean FDECL(paybill, (BOOLEAN_P));
  1445. E void FDECL(u_left_shop, (char *,BOOLEAN_P));
  1446. E void FDECL(u_entered_shop, (char *));
  1447. E boolean FDECL(same_price, (struct obj *,struct obj *));
  1448. E void FDECL(pay_for_damage, (const char *));
  1449. E long FDECL(unpaid_cost, (struct obj *));
  1450. E long FDECL(contained_cost, (struct obj *,struct monst *,long,BOOLEAN_P));
  1451. E long FDECL(contained_gold, (struct obj *));
  1452. E void FDECL(picked_container, (struct obj *));
  1453. E void FDECL(addtobill, (struct obj *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
  1454. E void FDECL(splitbill, (struct obj *,struct obj *));
  1455. E void FDECL(subfrombill, (struct obj *,struct monst *));
  1456. E long FDECL(stolen_value, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P,BOOLEAN_P));
  1457. E void FDECL(sellobj_state, (BOOLEAN_P));
  1458. E void FDECL(sellobj, (struct obj *,XCHAR_P,XCHAR_P));
  1459. E int FDECL(doinvbill, (int));
  1460. E int FDECL(shkcatch, (struct obj *,XCHAR_P,XCHAR_P));
  1461. E void FDECL(add_damage, (XCHAR_P,XCHAR_P,long));
  1462. E char FDECL(repair_damage, (struct monst *,struct damage *));
  1463. E int FDECL(shk_move, (struct monst *));
  1464. E boolean FDECL(is_fshk, (struct monst *));
  1465. E void FDECL(shopdig, (int));
  1466. E char FDECL(inside_shop, (XCHAR_P,XCHAR_P));
  1467. E boolean FDECL(costly_spot, (XCHAR_P,XCHAR_P));
  1468. E struct obj *FDECL(shop_object, (XCHAR_P,XCHAR_P));
  1469. E void FDECL(price_quote, (struct obj *));
  1470. #ifdef SOUNDS
  1471. E void FDECL(shk_chat, (struct monst *));
  1472. #endif
  1473. E void FDECL(check_unpaid, (struct obj *));
  1474. E void FDECL(costly_gold, (XCHAR_P,XCHAR_P,long));
  1475. E boolean FDECL(block_door, (XCHAR_P,XCHAR_P));
  1476. E boolean FDECL(block_entry, (XCHAR_P,XCHAR_P));
  1477.  
  1478. /* ### shknam.c ### */
  1479.  
  1480. E void FDECL(stock_room, (int,struct mkroom *));
  1481. E boolean FDECL(saleable, (int,struct obj *));
  1482. E int FDECL(get_shop_item, (int));
  1483.  
  1484. /* ### sit.c ### */
  1485.  
  1486. E void NDECL(take_gold);
  1487. E int NDECL(dosit);
  1488. E void NDECL(rndcurse);
  1489. E void NDECL(attrcurse);
  1490.  
  1491. /* ### sounds.c ### */
  1492.  
  1493. #ifdef SOUNDS
  1494. E void NDECL(dosounds);
  1495. E void FDECL(growl, (struct monst *));
  1496. E void FDECL(yelp, (struct monst *));
  1497. E void FDECL(whimper, (struct monst *));
  1498. E void FDECL(beg, (struct monst *));
  1499. #endif
  1500. E int NDECL(dotalk);
  1501.  
  1502. /* ### sp_lev.c ### */
  1503.  
  1504. E boolean FDECL(check_room, (xchar *,xchar *,xchar *,xchar *,BOOLEAN_P));
  1505. E boolean FDECL(create_room, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
  1506.                   XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  1507. E void FDECL(create_secret_door, (struct mkroom *,XCHAR_P));
  1508. E boolean FDECL(dig_corridor, (coord,coord,BOOLEAN_P,SCHAR_P,SCHAR_P));
  1509. E void FDECL(fill_room, (struct mkroom *,BOOLEAN_P));
  1510. E boolean FDECL(load_special, (const char *));
  1511.  
  1512. /* ### spell.c ### */
  1513.  
  1514. #ifdef OVERLAY
  1515. E int NDECL(learn);
  1516. #endif
  1517. E int FDECL(study_book, (struct obj *));
  1518. E int NDECL(docast);
  1519. E int FDECL(spelleffects, (int,BOOLEAN_P));
  1520. E void NDECL(losespells);
  1521. E int NDECL(dovspell);
  1522.  
  1523. /* ### steal.c ### */
  1524.  
  1525. #ifdef OVERLAY
  1526. E int NDECL(stealarm);
  1527. #endif
  1528. E long NDECL(somegold);
  1529. E void FDECL(stealgold, (struct monst *));
  1530. E int FDECL(steal, (struct monst *));
  1531. E void FDECL(mpickobj, (struct monst *,struct obj *));
  1532. E void FDECL(stealamulet, (struct monst *));
  1533. E void FDECL(relobj, (struct monst *,int,BOOLEAN_P));
  1534.  
  1535. /* ### timeout.c ### */
  1536.  
  1537. E void NDECL(nh_timeout);
  1538. E void NDECL(hatch_eggs);
  1539. E void NDECL(burn_lamps);
  1540. E void NDECL(do_storms);
  1541.  
  1542.  
  1543. /* ### topten.c ### */
  1544.  
  1545. E void FDECL(topten, (int));
  1546. E void FDECL(prscore, (int,char **));
  1547. E struct obj *FDECL(tt_oname, (struct obj *));
  1548.  
  1549. /* ### track.c ### */
  1550.  
  1551. E void NDECL(initrack);
  1552. E void NDECL(settrack);
  1553. E coord *FDECL(gettrack, (int,int));
  1554.  
  1555. /* ### trap.c ### */
  1556.  
  1557. E boolean FDECL(rust_dmg, (struct obj *,const char *,int,BOOLEAN_P));
  1558. E void FDECL(grease_protect, (struct obj *,const char *,BOOLEAN_P));
  1559. E struct trap *FDECL(maketrap, (int,int,int));
  1560. E boolean NDECL(safe_teleds);
  1561. E void FDECL(fall_through, (BOOLEAN_P));
  1562. E void FDECL(dotrap, (struct trap *));
  1563. E void FDECL(seetrap, (struct trap *));
  1564. E int FDECL(mintrap, (struct monst *));
  1565. E void FDECL(selftouch, (const char *));
  1566. E void FDECL(mselftouch, (struct monst *,const char *,BOOLEAN_P));
  1567. E void NDECL(float_up);
  1568. E void FDECL(fill_pit, (int,int));
  1569. E int NDECL(float_down);
  1570. E void NDECL(tele);
  1571. E void FDECL(teleds, (int,int));
  1572. E int NDECL(dotele);
  1573. E boolean FDECL(tele_restrict, (struct monst *));
  1574. E void NDECL(level_tele);
  1575. E void FDECL(water_damage, (struct obj *,BOOLEAN_P,BOOLEAN_P));
  1576. E boolean NDECL(drown);
  1577. E void FDECL(drain_en, (int));
  1578. E int NDECL(dountrap);
  1579. E int FDECL(untrap, (BOOLEAN_P));
  1580. E boolean FDECL(chest_trap, (struct obj *,int,BOOLEAN_P));
  1581. E void FDECL(deltrap, (struct trap *));
  1582. E struct trap *FDECL(t_at, (int,int));
  1583. E void FDECL(b_trapped, (const char *,int));
  1584. E boolean NDECL(unconscious);
  1585. E boolean NDECL(lava_effects);
  1586.  
  1587. /* ### u_init.c ### */
  1588.  
  1589. E void NDECL(u_init);
  1590. E void NDECL(plnamesuffix);
  1591.  
  1592. /* ### uhitm.c ### */
  1593.  
  1594. E struct monst *FDECL(clone_mon, (struct monst *));
  1595. E boolean FDECL(special_case, (struct monst *));
  1596. E schar FDECL(find_roll_to_hit, (struct monst *));
  1597. E boolean FDECL(attack, (struct monst *));
  1598. E boolean FDECL(hmon, (struct monst *,struct obj *,int));
  1599. #ifdef POLYSELF
  1600. E int FDECL(damageum, (struct monst *,struct attack *));
  1601. E void FDECL(missum, (struct monst *,struct attack *));
  1602. #endif
  1603. E int FDECL(passive, (struct monst *,BOOLEAN_P,int,BOOLEAN_P));
  1604. E void FDECL(stumble_onto_mimic, (struct monst *));
  1605.  
  1606. #ifdef UNIX
  1607.  
  1608. /* ### unixmain.c ### */
  1609. # ifdef PORT_HELP
  1610. E void NDECL(port_help);
  1611. # endif
  1612.  
  1613. /* ### unixtty.c ### */
  1614.  
  1615. E void NDECL(gettty);
  1616. E void FDECL(settty, (const char *));
  1617. E void NDECL(setftty);
  1618. E void NDECL(intron);
  1619. E void NDECL(introff);
  1620. E void VDECL(error, (const char *,...)) PRINTF_F(1,2);
  1621.  
  1622. /* ### unixunix.c ### */
  1623.  
  1624. E void FDECL(gethdate, (const char *));
  1625. E int FDECL(uptodate, (int));
  1626. E void NDECL(getlock);
  1627. E void FDECL(regularize, (char *));
  1628. # ifdef SHELL
  1629. E int NDECL(dosh);
  1630. # endif /* SHELL */
  1631. # if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER)
  1632. E int FDECL(child, (int));
  1633. # endif
  1634.  
  1635. #endif /* UNIX */
  1636.  
  1637. /* ### vault.c ### */
  1638.  
  1639. E boolean FDECL(grddead, (struct monst *));
  1640. E char FDECL(vault_occupied, (char *));
  1641. E void NDECL(invault);
  1642. E int FDECL(gd_move, (struct monst *));
  1643. E void NDECL(paygd);
  1644. E long NDECL(hidden_gold);
  1645. #ifdef SOUNDS
  1646. E boolean NDECL(gd_sound);
  1647. #endif
  1648.  
  1649. /* ### version.c ### */
  1650.  
  1651. E int NDECL(doversion);
  1652. E int NDECL(doextversion);
  1653. #ifdef MICRO
  1654. E boolean FDECL(comp_times, (long));
  1655. #endif
  1656.  
  1657. /* ### video.c ### */
  1658.  
  1659. #ifdef VIDEOSHADES
  1660. E int FDECL(assign_videoshades, (uchar *,int));
  1661. E int FDECL(assign_videocolors, (uchar *,int));
  1662. #endif /* VIDEOSHADES */
  1663.  
  1664.  
  1665. /* ### vis_tab.c ### */
  1666.  
  1667. #ifdef VISION_TABLES
  1668. E void NDECL(vis_tab_init);
  1669. #endif
  1670.  
  1671. /* ### vision.c ### */
  1672.  
  1673. E void NDECL(vision_init);
  1674. E int FDECL(does_block, (int,int,struct rm*));
  1675. E void NDECL(vision_reset);
  1676. E void FDECL(vision_recalc, (int));
  1677. E void FDECL(block_point, (int,int));
  1678. E void FDECL(unblock_point, (int,int));
  1679. E boolean FDECL(clear_path, (int,int,int,int));
  1680. E void FDECL(do_clear_area, (int,int,int,
  1681.                  void (*)(int,int,genericptr_t),genericptr_t));
  1682.  
  1683. #ifdef VMS
  1684.  
  1685. /* ### vmsfiles.c ### */
  1686.  
  1687. E int FDECL(vms_link, (const char *,const char *));
  1688. E int FDECL(vms_unlink, (const char *));
  1689. E int FDECL(vms_creat, (const char *,unsigned int));
  1690. E int FDECL(vms_open, (const char *,int,unsigned int));
  1691. E boolean FDECL(same_dir, (const char *,const char *));
  1692. E int FDECL(c__translate, (int));
  1693.  
  1694. /* ### vmsmail.c ### */
  1695.  
  1696. E unsigned long NDECL(init_broadcast_trapping);
  1697. E unsigned long NDECL(enable_broadcast_trapping);
  1698. E unsigned long NDECL(disable_broadcast_trapping);
  1699. # if 0
  1700. E struct mail_info *NDECL(parse_next_broadcast);
  1701. # endif /*0*/
  1702.  
  1703. /* ### vmsmain.c ### */
  1704.  
  1705. E int FDECL(main, (int, char **));
  1706. # ifdef CHDIR
  1707. E void FDECL(chdirx, (const char *,BOOLEAN_P));
  1708. # endif /* CHDIR */
  1709.  
  1710. /* ### vmsmisc.c ### */
  1711.  
  1712. E void NDECL(vms_abort);
  1713. E void FDECL(vms_exit, (int));
  1714.  
  1715. /* ### vmstty.c ### */
  1716.  
  1717. E int NDECL(vms_getchar);
  1718. E void NDECL(gettty);
  1719. E void FDECL(settty, (const char *));
  1720. E void FDECL(shuttty, (const char *));
  1721. E void NDECL(setftty);
  1722. E void NDECL(intron);
  1723. E void NDECL(introff);
  1724. E void VDECL(error, (const char *,...)) PRINTF_F(1,2);
  1725.  
  1726. /* ### vmsunix.c ### */
  1727.  
  1728. E void FDECL(gethdate, (const char *));
  1729. E boolean FDECL(uptodate, (int));
  1730. E void NDECL(getlock);
  1731. E void FDECL(regularize, (char *));
  1732. E int NDECL(vms_getuid);
  1733. E char *FDECL(basename, (const char *));
  1734. E boolean FDECL(file_is_stmlf, (int));
  1735. E char *NDECL(verify_termcap);
  1736. # if defined(CHDIR) || defined(SHELL) || defined(SECURE)
  1737. E void NDECL(privoff);
  1738. E void NDECL(privon);
  1739. # endif
  1740. # ifdef SHELL
  1741. E int NDECL(dosh);
  1742. # endif
  1743. # if defined(SHELL) || defined(MAIL)
  1744. E int FDECL(vms_doshell, (const char *,BOOLEAN_P));
  1745. # endif
  1746. # ifdef SUSPEND
  1747. E int NDECL(dosuspend);
  1748. # endif
  1749.  
  1750. #endif /* VMS */
  1751.  
  1752. /* ### weapon.c ### */
  1753.  
  1754. E int FDECL(hitval, (struct obj *,struct permonst *));
  1755. E int FDECL(dmgval, (struct obj *,struct permonst *));
  1756. E void NDECL(set_uasmon);
  1757. E struct obj *FDECL(select_rwep, (struct monst *));
  1758. E struct obj *FDECL(select_hwep, (struct monst *));
  1759. #ifdef MUSE
  1760. E void FDECL(possibly_unwield, (struct monst *));
  1761. E int FDECL(mon_wield_item, (struct monst *));
  1762. #endif
  1763. E int NDECL(abon);
  1764. E int NDECL(dbon);
  1765.  
  1766. /* ### were.c ### */
  1767.  
  1768. E void FDECL(were_change, (struct monst *));
  1769. E void FDECL(new_were, (struct monst *));
  1770. E boolean FDECL(were_summon, (struct permonst *,BOOLEAN_P));
  1771. #ifdef POLYSELF
  1772. E void NDECL(you_were);
  1773. #endif /* POLYSELF */
  1774.  
  1775. /* ### wield.c ### */
  1776.  
  1777. E void FDECL(setuwep, (struct obj *));
  1778. E void NDECL(uwepgone);
  1779. E int NDECL(dowield);
  1780. E void FDECL(erode_weapon, (BOOLEAN_P));
  1781. E int FDECL(chwepon, (struct obj *,int));
  1782. E int FDECL(welded, (struct obj *));
  1783. E void FDECL(weldmsg, (struct obj *,BOOLEAN_P));
  1784.  
  1785. /* ### windows.c ### */
  1786.  
  1787. E void FDECL(choose_windows, (const char *));
  1788.  
  1789. /* ### wizard.c ### */
  1790.  
  1791. E void NDECL(amulet);
  1792. E int FDECL(mon_has_amulet, (struct monst *));
  1793. E int FDECL(mon_has_special, (struct monst *));
  1794. E int FDECL(tactics, (struct monst *));
  1795. E void NDECL(aggravate);
  1796. E void NDECL(clonewiz);
  1797. E void FDECL(nasty, (struct monst*));
  1798. E void NDECL(resurrect);
  1799. E void NDECL(intervene);
  1800. E void FDECL(wizdead, (struct monst *));
  1801. E void FDECL(cuss, (struct monst *));
  1802.  
  1803. /* ### worm.c ### */
  1804.  
  1805. E int NDECL(get_wormno);
  1806. E void FDECL(initworm, (struct monst *,int));
  1807. E void FDECL(worm_move, (struct monst *));
  1808. E void FDECL(worm_nomove, (struct monst *));
  1809. E void FDECL(wormgone, (struct monst *));
  1810. E void FDECL(wormhitu, (struct monst *));
  1811. E void FDECL(cutworm, (struct monst *,XCHAR_P,XCHAR_P,struct obj *));
  1812. E void FDECL(see_wsegs, (struct monst *));
  1813. E void FDECL(save_worm, (int,int));
  1814. E void FDECL(rest_worm, (int));
  1815. E void FDECL(place_wsegs, (struct monst *));
  1816. E void FDECL(remove_worm, (struct monst *));
  1817. E void FDECL(place_worm_tail_randomly, (struct monst *,XCHAR_P,XCHAR_P));
  1818. E int FDECL(count_wsegs, (struct monst *));
  1819.  
  1820. /* ### worn.c ### */
  1821.  
  1822. E void FDECL(setworn, (struct obj *,long));
  1823. E void FDECL(setnotworn, (struct obj *));
  1824. E int FDECL(find_mac, (struct monst *));
  1825. E void FDECL(m_dowear, (struct monst *,BOOLEAN_P));
  1826. E struct obj *FDECL(which_armor, (struct monst *,long));
  1827. E void FDECL(mon_break_armor, (struct monst *));
  1828.  
  1829. /* ### write.c ### */
  1830.  
  1831. E int FDECL(dowrite, (struct obj *));
  1832.  
  1833. /* ### zap.c ### */
  1834.  
  1835. E struct monst *FDECL(revive, (struct obj *,BOOLEAN_P));
  1836. E boolean FDECL(obj_resists, (struct obj *,int,int));
  1837. #if defined(OVERLAY) || defined(MUSE)
  1838. E int FDECL(bhito, (struct obj *,struct obj *));
  1839. #endif
  1840. E int FDECL(zappable, (struct obj *));
  1841. E void FDECL(zapnodir, (struct obj *));
  1842. E int NDECL(dozap);
  1843. E int FDECL(zapyourself, (struct obj *));
  1844. E void FDECL(cancel_monst, (struct monst *,struct obj *,
  1845.                 BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
  1846. E void FDECL(weffects, (struct obj *));
  1847. E const char *FDECL(exclam, (int force));
  1848. E void FDECL(hit, (const char *,struct monst *,const char *));
  1849. E void FDECL(miss, (const char *,struct monst *));
  1850. E struct monst *FDECL(bhit, (int,int,int,int,int (*)(MONST_P,OBJ_P),
  1851.                  int (*)(OBJ_P,OBJ_P),struct obj *));
  1852. E struct monst *FDECL(boomhit, (int,int));
  1853. E void FDECL(buzz, (int,int,XCHAR_P,XCHAR_P,int,int));
  1854. E void FDECL(melt_ice, (XCHAR_P,XCHAR_P));
  1855. E int FDECL(zap_over_floor, (XCHAR_P,XCHAR_P,int,boolean *));
  1856. E void FDECL(rloco, (struct obj *));
  1857. E void FDECL(fracture_rock, (struct obj *));
  1858. E boolean FDECL(break_statue, (struct obj *));
  1859. E void FDECL(destroy_item, (int,int));
  1860. E int FDECL(destroy_mitem, (struct monst *,int,int));
  1861. E int FDECL(resist, (struct monst *,CHAR_P,int,int));
  1862. E void NDECL(makewish);
  1863.  
  1864. #endif /* !MAKEDEFS_C && !LEV_LEX_C */
  1865.  
  1866. #undef E
  1867.  
  1868. #endif /* EXTERN_H */
  1869.